#ifndef _BUTTON_H
#define _BUTTON_H

///////////////////////////////////////////////////////////////////////////
//																		 //
//	Author:		Michael Mozdzierz										 //
//	Date:		11/02/2014												 //
//	Purpose:	Outline a ui button										 //
//																		 //
///////////////////////////////////////////////////////////////////////////

#include "UiElement.h"
#include "..\..\..\..\EdgeControls\Input.h"
#include "..\..\..\..\EdgeGameCore\Delegate.h"

class BitmapFont;

class Button : public UiElement
{
	BitmapFont* font = nullptr;

	char text[32];


	Vector4 textColor = vector_4::white;

public:
	Button(const char* textureFilename, const char* text = nullptr);
	virtual ~Button(void);

	Delegate<mouse_event_handler> OnClicked;

	virtual void Update(float dt) override;
	virtual void Draw(void) override;

	/////////////////////<accessors/mutators>//////////////////////////////////////////

	BitmapFont* getFont(void) const { return font; }

	const char* getText(void) const { return text; }

	void setFont(BitmapFont* value) { font = value; }

	void setText(const char* value) { strcpy(text, value); }

	Vector4 getTextColor(void) const { return textColor; }

	void setTextColor(Vector4& value) { textColor = value; }
};

#endif